/*******************************************************************************
* Copyright (c) 2009 EclipseSource and others. All rights reserved. This
* program and the accompanying materials are made available under the terms of
* the Eclipse Public License v1.0 which accompanies this distribution, and is
* available at http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* EclipseSource - initial API and implementation
*******************************************************************************/
package org.eclipse.rap.interactiondesign.tests;
import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.rap.interactiondesign.tests.impl.LayoutSetInitializerImpl;
import org.eclipse.rap.interactiondesign.tests.impl.LayoutSetInitializerImpl2;
import org.eclipse.rap.junit.RAPTestCase;
import org.eclipse.rap.ui.interactiondesign.layout.LayoutRegistry;
import org.eclipse.rap.ui.interactiondesign.layout.model.Layout;
import org.eclipse.rap.ui.interactiondesign.layout.model.LayoutSet;
public class LayoutRegistryTest extends RAPTestCase {
private static final String LAYOUT_ID = "org.eclipse.rap.ui.defaultlayout";
private static final String LAYOUT_ID2
= "org.eclipse.rap.ui.interactiondesign.test.layout2";
private static final String SET_ID
= "org.eclipse.rap.ui.interactiondesign.test.layoutSet";
private static final String SET_ID2
= "org.eclipse.rap.ui.interactiondesign.test.layoutSet2";
private LayoutRegistry registry;
protected void setUp() throws Exception {
registry = LayoutRegistry.getInstance();
}
public void testGetActiveLayout() {
Layout activeLayout = registry.getActiveLayout();
String id = activeLayout.getId();
assertTrue( LAYOUT_ID2.equals( id ) );
LayoutSet layoutSet = activeLayout.getLayoutSet( SET_ID2 );
String imagePath = layoutSet.getImagePath( LayoutSetInitializerImpl2.KEY2 );
assertEquals( LayoutSetInitializerImpl2.IMAGEPATH2, imagePath );
String defaultLayoutId = LayoutRegistry.DEFAULT_LAYOUT_ID;
registry.setActiveLayout( defaultLayoutId, false );
assertEquals( defaultLayoutId, registry.getActiveLayout().getId() );
registry.setActiveLayout( id, false );
assertEquals( id, registry.getActiveLayout().getId() );
}
public void testLayoutSetInitializer() {
Layout activeLayout = registry.getActiveLayout();
LayoutSet layoutSet = activeLayout.getLayoutSet( SET_ID2 );
assertNotNull( layoutSet );
String imagePath = layoutSet.getImagePath( LayoutSetInitializerImpl2.KEY2 );
assertEquals( LayoutSetInitializerImpl2.IMAGEPATH2, imagePath );
}
public void testSetActiveLayout() {
registry.setActiveLayout( LAYOUT_ID, false );
Layout activeLayout = registry.getActiveLayout();
assertEquals( LAYOUT_ID, activeLayout.getId() );
LayoutSet layoutSet = activeLayout.getLayoutSet( SET_ID );
String imagePath = layoutSet.getImagePath( LayoutSetInitializerImpl.KEY );
assertEquals( LayoutSetInitializerImpl.IMAGEPATH, imagePath );
}
public void testSaveLayoutId() {
String savedLayoutId = registry.getSavedLayoutId();
String defaultString = IPreferenceStore.STRING_DEFAULT_DEFAULT;
assertEquals( defaultString, savedLayoutId );
Layout activeLayout = registry.getActiveLayout();
String id = "";
if( activeLayout.getId().equals( LAYOUT_ID ) ) {
registry.setActiveLayout( LAYOUT_ID2, true );
id = LAYOUT_ID2;
} else {
registry.setActiveLayout( LAYOUT_ID, true );
id = LAYOUT_ID;
}
savedLayoutId = registry.getSavedLayoutId();
assertEquals( id, savedLayoutId );
registry.saveLayoutId( defaultString );
savedLayoutId = registry.getSavedLayoutId();
assertEquals( defaultString, savedLayoutId );
registry.saveLayoutId( id );
savedLayoutId = registry.getSavedLayoutId();
assertEquals( id, savedLayoutId );
registry.saveLayoutId( defaultString );
}
public void testOverrideLayoutSet() {
registry.setActiveLayout( LAYOUT_ID, false );
Layout activeLayout = registry.getActiveLayout();
String setId = "org.eclipse.rap.ui.tests.overrides";
LayoutSet set = activeLayout.getLayoutSet( setId );
String imagePath = set.getImagePath( "aOverrideKey" );
assertEquals( imagePath, "/somepath2" );
}
}